import Admin from '../src/models/Admin.js'
import SystemMenu from '../src/models/SystemMenu.js'
import SystemPermissions from '../src/models/SystemPermissions.js'
import SystemRoles from '../src/models/SystemRoles.js'
import SystemRolesUser from '../src/models/SystemRolesUser.js'
import { hashPassword } from '../src/utils/helper.js'
import fs from 'fs'

class InitCommand
{
    static async init()
    {
        const filePath = './install.lock'

        if (fs.existsSync(filePath)) {
            return
        }
        // 文件不存在，创建文件
        fs.writeFileSync(filePath, '')

        try {
            // 同步菜单和权限
            const data = fs.readFileSync('./script/db.json', 'utf-8')
            const { menu, permissions } = JSON.parse(data)

            await SystemMenu.createManyData(menu)
            await SystemPermissions.createManyData(menu)

            // 创建角色
            await SystemRoles.saveData({
                'description': "系统内置",
                'display_name': "超级管理员",
                'name': "administrator"
            })

            const password = await hashPassword('123456')
            // 创建管理员
            await Admin.saveData({
                username: '超级管理员',
                account: 'admin',
                avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
                password
            })
            // 为管理员赋予角色
            await SystemRolesUser.create({
                system_role_id: 1,
                user_id: 1
            })
        } catch (err) {
            console.error('读取文件失败:', err);
        }
    }
}

InitCommand.init()